用Python代码画一个足球(附完整代码)

您所在的位置:网站首页 足球绘画 简单 用Python代码画一个足球(附完整代码)

用Python代码画一个足球(附完整代码)

2023-11-10 22:28| 来源: 网络整理| 查看: 265

用Python代码画一个足球(附完整代码)

C站举办了世界杯征文活动,本文用Python代码画一个足球。

实现方法介绍

本文的绘图工具使用Python的标准库turtle库,无需安装,导入即可使用。

部分函数用法介绍:

画布设置

title(): 设置窗口的标题。bgpic():设置背景图片。setup(width, height, x, y): 设置窗口大小和窗口左上角在屏幕中的位置。shape():设置鼠标的形状。done(): 绘图结束后,不自动关闭窗口。

画笔设置

pencolor(color): 设置画笔颜色。width(): 设置画笔宽度。speed(int): 设置画笔的速度,传入1~10的数字,1最慢,10最快。传入其他值会更快,但是没有鼠标移动的动画效果。penup(): 提起画笔,提起后移动画笔不会留下痕迹。pendown(): 落下画笔,开始绘图前先将画笔落下。setx(value): 设置画笔的x轴坐标。sety(value): 设置画笔的y轴坐标。towards(x, y): 设置画笔指向的点。setheading(): 设置画笔的方向。与towards()配合可以设置画笔指向某个点,如setheading(towards(0, 0))可以设置画笔指向原点。pos(): 返回画笔当前的坐标。鼠标移动一段时间后可以print()打印此函数获取鼠标位置。heading(): 返回画笔当前的方向。

画笔操作

circle(radius[, extent=arc]): 画一个圆,传入圆的半径,根据画笔的方向控制圆心的位置,圆心与画笔的方向垂直。传入弧度值可以画出指定弧度的圆弧。left(angle): 画笔左转,传入任意一个目标角度。right(angle): 画笔右转。forward(distance): 画笔前进一段距离。backward(distance): 画笔后退一段距离。goto(x, y): 移动画笔到指定坐标。

颜色填充

begin_fill(): 开始填充。fillcolor(color): 设置图形中填充的颜色。end_fill(): 结束填充。

具体画图时,调整画笔的起点,设置不同的转角度数和不同的前进长度,可以得到不同形状的弧线,用弧线构成完整的图形。

完整代码

# coding=utf-8 from turtle import * def set_start(x, y, w=0.5, c='black'): # 设置画笔开始的位置,绘制每一个部分的图形时,将鼠标移到起始点 penup() # 提起画笔 setx(x) # 设置画笔的x坐标 sety(y) # 设置画笔的y坐标 setheading(towards(0, 0)) # 默认设置画笔指向坐标原点0,0 width(w) # 设置画笔的宽度 pencolor(c) # 设置画笔的颜色 pendown() # 落下画笔,开始绘图 speed(0) # 设置画笔的速度,1-9依次越来越快,其他数字比9更快 def left_rotate(time, angle, length): # 绘制向左转的弧度,左转一定角度然后前进一段距离,重复多次就得到一个弧度 for i in range(time): # 重复次数 left(angle) # 左转的角度 forward(length) # 前进距离 def right_rotate(time, angle, length): # 绘制向右转的弧度,右转一定角度然后前进一段距离,重复多次就得到一个弧度 for i in range(time): # 重复次数 right(angle) # 右转的角度 forward(length) # 前进距离 def fill_color_patch(x, y, c='white'): # 填充颜色时会找上一个图形的介绍点,此函数重置结束点,避免填充效果不准 set_start(x, y, 1, c=c) forward(1) def draw_football(): # 足球 fill_color_patch(39.34, -90.63) begin_fill() set_start(39.34, -90.63, w=2, c='black') setheading(124.2) left_rotate(20, 18, 12.2) goto(39.34, -90.63) fillcolor('#DCDCDC') end_fill() fill_color_patch(-25, -110) begin_fill() set_start(-25, -110, w=1, c='white') right_rotate(1, 160, 10) left_rotate(5, 20, 12) left_rotate(4, 18, 12) pencolor('black') left_rotate(1, 35, 12) left_rotate(7, 18, 12.1) goto(-25, -110) fillcolor('white') end_fill() fill_color_patch(-25, -108) begin_fill() set_start(-25, -108, w=1, c='black') right_rotate(1, 20, 4) right_rotate(2, 10, 3) left_rotate(1, 35, 5) left_rotate(1, 165, 5) right_rotate(2, 15, 3) goto(-25, -108) fillcolor('black') end_fill() fill_color_patch(-16, -101) begin_fill() set_start(-16, -101, w=1, c='black') right_rotate(1, 35, 8) right_rotate(1, 140, 4) left_rotate(2, 21, 2) left_rotate(2, 8, 4.5) right_rotate(1, 105, 8) right_rotate(1, 120, 3) left_rotate(3, 15, 4) goto(-16, -101) fillcolor('black') end_fill() fill_color_patch(-10, -93) begin_fill() set_start(-10, -93, w=1, c='black') left_rotate(1, 90, 4) right_rotate(1, 135, 5) right_rotate(2, 3, 7) right_rotate(1, 60, 3) right_rotate(1, 135, 5) left_rotate(3, 10, 4) goto(-10, -93) fillcolor('black') end_fill() fill_color_patch(6, -82) begin_fill() set_start(6, -82, w=1, c='black') right_rotate(1, 50, 4) right_rotate(1, 60, 6) right_rotate(2, 3, 7) right_rotate(1, 130, 4) right_rotate(1, 60, 5) left_rotate(3, 8, 4) goto(6, -82) fillcolor('black') end_fill() fill_color_patch(30, -88) begin_fill() set_start(30, -88, w=1, c='black') right_rotate(1, 130, 5) right_rotate(1, 15, 5) right_rotate(1, 150, 5) goto(30, -88) fillcolor('black') end_fill() fill_color_patch(25, -89) begin_fill() set_start(25, -89, w=1, c='black') right_rotate(1, 140, 8) right_rotate(1, 95, 4) left_rotate(2, 25, 6) right_rotate(1, 130, 8) right_rotate(1, 110, 3) left_rotate(3, 20, 4) goto(25, -89) fillcolor('black') end_fill() fill_color_patch(20, -106) begin_fill() set_start(20, -106, w=1, c='black') right_rotate(1, 180, 8) right_rotate(1, 120, 4) left_rotate(3, 18, 5.8) right_rotate(1, 120, 8) right_rotate(1, 110, 3) left_rotate(3, 14, 5) goto(20, -106) fillcolor('black') end_fill() fill_color_patch(-8, -117) begin_fill() set_start(-8, -117, w=1, c='black') right_rotate(1, 100, 8) right_rotate(1, 115, 4) left_rotate(2, 16, 5) left_rotate(1, 22, 6) right_rotate(1, 125, 8) right_rotate(1, 120, 3) left_rotate(1, 25, 4) left_rotate(3, 15, 4) goto(-8, -117) fillcolor('black') end_fill() fill_color_patch(-12, -137) begin_fill() set_start(-12, -137, w=1, c='black') right_rotate(1, 145, 8) right_rotate(1, 148, 4) left_rotate(2, 18, 3.2) right_rotate(1, 55, 7) right_rotate(1, 165, 3) left_rotate(3, 20, 3) goto(-12, -137) fillcolor('black') end_fill() fill_color_patch(-6, -144) begin_fill() set_start(-6, -144, w=1, c='black') right_rotate(1, 35, 6) right_rotate(1, 105, 4) left_rotate(3, 16, 5.5) right_rotate(1, 130, 5) right_rotate(1, 78, 3) left_rotate(3, 5, 4) goto(-6, -144) fillcolor('black') end_fill() fill_color_patch(23, -115) begin_fill() set_start(23, -115, w=1, c='black') right_rotate(1, 60, 8) right_rotate(1, 120, 4) left_rotate(3, 12, 5.3) right_rotate(1, 100, 8) right_rotate(1, 130, 3) left_rotate(3, 15, 5) goto(23, -115) fillcolor('black') end_fill() fill_color_patch(32, -133) begin_fill() set_start(32, -133, w=1, c='black') right_rotate(1, 140, 6) right_rotate(1, 110, 4) left_rotate(3, 8, 5) right_rotate(1, 80, 7) right_rotate(1, 140, 3) left_rotate(3, 14, 6) goto(32, -133) fillcolor('black') end_fill() fill_color_patch(39, -135) begin_fill() set_start(39, -135, w=1, c='black') right_rotate(1, 30, 7) right_rotate(1, 80, 3) left_rotate(3, 20, 2.2) right_rotate(1, 160, 5) right_rotate(1, 60, 3) left_rotate(2, 15, 3) goto(39, -135) fillcolor('black') end_fill() fill_color_patch(14, -153) begin_fill() set_start(14, -153, w=1, c='black') right_rotate(1, 90, 7) right_rotate(1, 130, 3.5) right_rotate(1, 60, 3) goto(14, -153) fillcolor('black') end_fill() if __name__ == '__main__': title('足球(公众号:小斌哥ge)') wide = 600 height = 500 screensize(wide, height, 'green') setup(wide+30, height+30, 100, 50) draw_football() set_start(1000, 1000, 1) done()

运行结果 在这里插入图片描述

运行以上代码,即可以画出一个在绿茵场上的足球。

如果需要吉祥物和足球一起的代码,可以在文章下方关注我,获取更多代码。

相关阅读

用Python标准库turtle画一只老虎,祝您新年虎虎生威,大吉大利!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3